import 'dart:async';

import 'package:flutter/material.dart';
import 'package:gin_vue_admin_web/exports.dart';
import 'package:gin_vue_admin_web/gen/colors.gen.dart';
import 'package:gin_vue_admin_web/models/models.dart';
import 'package:gin_vue_admin_web/models/simple_model.dart';
import 'package:gin_vue_admin_web/providers/system/system_riverpod.dart';
import 'package:gin_vue_admin_web/util/export_util.dart';
import 'package:gin_vue_admin_web/widgets/asyncvalue_widget.dart';
import 'package:gin_vue_admin_web/widgets/export_widget.dart';

import '../../layout/export_layout.dart';
import '../../router/router.dart';
import '../../theme/exports_theme.dart';

class DictionaryPage extends ConsumerStatefulWidget {
  const DictionaryPage({super.key});

  @override
  ConsumerState<DictionaryPage> createState() => _DictionaryPageState();
}

class _DictionaryPageState extends ConsumerState<DictionaryPage> {
  @override
  void dispose() {
    super.dispose();
  }

  final params = GetSysDictionaryDetailListParams();

  final List<String> titles = ['日期', "展示值", "字典值", "扩展值", "启用状态", "排序标记", "操作"];
  final buttons = [
    (title: "变更", icon: Icons.edit),
    (title: "删除", icon: Icons.delete),
  ];

  Completer completer = Completer();

  @override
  Widget build(BuildContext context) {
    final lang = context.L!;
    return DefaultLayout(
      route: RoutePath.dictionary,
      child: Container(
        color: ColorName.bgGray,
        child: Text("字典"),
      ),
    );
  }
}

//Row(
//           children: [
//             RoundWidget(
//               child: SizedBox(
//                 width: 300,
//                 child: Column(
//                   crossAxisAlignment: CrossAxisAlignment.start,
//                   children: [
//                     Padding(
//                       padding: const EdgeInsets.all(15),
//                       child: Row(
//                         mainAxisAlignment: MainAxisAlignment.spaceBetween,
//                         children: [
//                           Text(
//                             "字典列表",
//                             style: TextStyles.getTitleBold(context),
//                           ),
//                           FilledButton(
//                             onPressed: () {},
//                             style: Styles.getRoundFillShape(),
//                             child: const Text("新增"),
//                           )
//                         ],
//                       ),
//                     ),
//                     Expanded(
//                         child: AsyncValueWidget(
//                             ref.watch(getSysDictionaryListProvider),
//                             builder: (v) {
//                       final items = v ?? [];
//                       if (!completer.isCompleted) {
//                         if (items.isNotEmpty == true) {
//                           params.sysDictionaryID = items.first.id;
//                           completer.complete(true);
//                         }
//                       }
//                       return HookBuilder(builder: (context) {
//                         final selectIndex = useState(0);
//                         return ListView.builder(
//                           itemBuilder: (BuildContext context, int index) {
//                             return ListTile(
//                               onTap: () {
//                                 selectIndex.value = index;
//                                 params.sysDictionaryID = items[index].id;
//                                 ref.invalidate(
//                                     getSysDictionaryDetailListProvider(params));
//                               },
//                               title: Text(
//                                 items[index].name,
//                                 style: TextStyle(
//                                     color: selectIndex.value == index
//                                         ? Colors.blue
//                                         : null),
//                               ),
//                               trailing: OverflowBar(
//                                 children: [
//                                   InkWell(
//                                     child: const Icon(
//                                       Icons.edit,
//                                       color: Colors.blue,
//                                     ),
//                                     onTap: () {},
//                                   ),
//                                   InkWell(
//                                     onTap: () {},
//                                     child: const Icon(
//                                       Icons.delete_forever_outlined,
//                                       color: Colors.red,
//                                     ),
//                                   ),
//                                 ],
//                               ),
//                             );
//                           },
//                           itemCount: items.length,
//                         );
//                       });
//                     }))
//                   ],
//                 ),
//               ),
//             ),
//             const Gap.h(10),
//             Expanded(
//                 child: RoundWidget(
//               child: Column(
//                 crossAxisAlignment: CrossAxisAlignment.start,
//                 children: [
//                   Padding(
//                     padding: const EdgeInsets.all(15),
//                     child: Row(
//                       mainAxisAlignment: MainAxisAlignment.spaceBetween,
//                       children: [
//                         Text(
//                           "字典详细内容",
//                           style: TextStyles.getTitleBold(context),
//                         ),
//                         FilledButton(
//                           onPressed: () {},
//                           style: Styles.getRoundFillShape(),
//                           child: const Text("新增"),
//                         )
//                       ],
//                     ),
//                   ),
//                   Expanded(
//                     child: FutureBuilder(
//                         future: completer.future,
//                         builder: (context, snapshot) {
//                           if(snapshot.hasData&&snapshot.data is bool&&snapshot.data){
//                             return AsyncValueWidget(
//                                 ref.watch(
//                                     getSysDictionaryDetailListProvider(params)),
//                                 builder: (value) {
//                                   final items = value?.list ?? [];
//                                   return Text("fdsafdsaf");
//                                 });
//                           }
//                           return const Center(child: Text("loading"));
//                         }),
//                   ),
//                 ],
//               ),
//             ))
//           ],
//         )

//DataTableListPage(
//                                     data: items,
//                                     getDataCell: (x) {
//                                       final selectableX =
//                                       x as SysDictionaryDetailModel;
//                                       return [
//                                         DataCell(Text(ShowUtils.formatTimeToStr(selectableX.createdAt))),
//                                         DataCell(Text(selectableX.label)),
//                                         DataCell(Text(selectableX.value)),
//                                         DataCell(Text(selectableX.extend)),
//                                         DataCell(
//                                             Text(selectableX.status ? "是" : "否")),
//                                         DataCell(Text(selectableX.sort.toString())),
//                                         DataCell(Row(
//                                           children: buttons
//                                               .map((e) => TextButtonWithIconX(
//                                             onPressed: () {},
//                                             label: Text(e.title),
//                                             style: context.appExtensionTheme
//                                                 ?.textButtonStyle,
//                                             icon: Icon(
//                                               e.icon,
//                                               size: 20,
//                                             ),
//                                           ))
//                                               .toList(),
//                                         ))
//                                       ];
//                                     },
//                                     titles: titles,
//                                   )
